Generally described, computing devices and communication networks can be utilized to exchange information. In a common application, a computing device can request content from another computing device via a communication network. For example, a user at a personal computing device can utilize a software application process, typically referred to as a browser application or “browser,” to request content from a server computing device via the Internet. In such embodiments, the personal computing device can be referred to as a client device or user device, and the server computing device can be referred to as a content provider or content source.
Once a client device obtains content, such as a web page or other network-accessible content item, the content may be processed in a number of stages by the browser. For example, the browser may parse a Hypertext Markup Language (“HTML”) web page to extract layout information and references to associated resources; request and receive associated resources such as Cascading Style Sheets (“CSS”) and JavaScript code files; construct a document object model (“DOM”) to represent the various components of the web page and manage their associated properties; etc.
Browsers typically allow multiple content items to be open concurrently. For example, users can open multiple browser windows, such as multiple separate browser instances or multiple tabbed display windows (“tabs”) within a single browser instance. Each separate window displays a different content item, and may be used to navigate to various other content items. The browser stores information about the history of accessed content items and navigation paths in each window such that users can return to previously accessed pages in a given window (e.g., by clicking a “back” button) without affecting the content item currently displayed in a different browser window. Saving the history can require writing and managing updates to a large amount of data, such as when there are long navigation paths in multiple windows, a large number of windows open concurrently, etc. Many browsers incur the overhead required to use relational database engines in order to manage the storage of history data.